Network management is crucial for network systems to be properly utilized. If network management is lacking in a particular system, the resources in that system and the network as a whole, may be either underutilized or overcommitted. Underutilized network resources are a waste of scarce capital. Overcommitted network resources are more prone to failures and may lead to user dissatisfaction and frustration, making the network ineffective.
One way in which network resources may be managed is by providing a system to schedule the usage of one or more network resources. However, today's scheduling systems or “scheduling engines” typically support only binary scheduling. That is, existing scheduling systems typically consider a given resource as a whole unit that is either entirely available or entirely unavailable. This type of scheduling may lead to the underutilization of a resource because the reserved resource is often only partially utilized by the application that is running during the reserved time. For example, in a video network environment a multipoint control unit (MCU) may have a bandwidth that is only partially utilized by a given video conference. However, after the video conference is scheduled, the MCU will be viewed by the scheduling system as unavailable for the reserved period, even though a portion of the MCU's bandwidth is not required by the video conference that is the reserved application.
To deal with the limitations of binary scheduling systems, one approach that may be used is to partition a single resource into a collection of discrete resources which may also be referred to as “subresources”. Each subresource is assigned a portion of the resource's capacity, and each subresource is then scheduled separately. However, this approach limits the flexibility of scheduling to only allow scheduling of the predetermined portions of the resource's capacity, and it also requires that the user identify the proper number of subresources to match with their requirements.